Songs
Song 객체는 Apple Music API에서 곡에 대한 정보를 제공합니다. 다음은 Song 객체의 속성과 그 설명입니다.
WePLi 개발에 필요한 속성만 추출한 문서입니다. 자세한 내용은 Apple Music 공식 문서를 참고해주세요.
전체 코드
data class Song(
val id: String,
val type: String,
val href: String,
val attributes: Attributes,
) {
data class Attributes(
val name: String,
val albumName: String,
val artistName: String,
val hasLyrics: Boolean,
val durationInMillis: Int,
val genreNames: List<String>,
val url: String,
val playParams: PlayParams,
val previews: List<Preview>,
val releaseDate: String,
val trackNumber: Int,
val artwork: Artwork,
/* 필요 없을 것 같은 값들 */
val composerName: String,
val discNumber: Int,
val isAppleDigitalMaster: Boolean,
val isrc: String,
) {
data class Preview(
val url: String
)
data class PlayParams(
val id: String,
val kind: String
)
}
}
Song
data class Song(
val id: String,
val type: String,
val href: String,
val attributes: Attributes,
)
속성
id(Required): 곡의 고유 식별자type(Required): 데이터 유형 (songs)href(Required): 리소스의 URLattributes: 곡에 대한 세부 정보, 아래 Attributes 참조
Attributes
Attributes 객체는 곡의 메타데이터를 포함합니다.
data class Attributes(
val name: String, // 노래 제목
val albumName: String, // 앨범 이름
val artistName: String, // 가수 이름
val hasLyrics: Boolean, // 가사 여부
val durationInMillis: Int, // 노래 재생 시간
val genreNames: List<String>, // 장르
val url: String, // 노래 페이지 URL
val playParams: PlayParams, // 플레이 파라미터 (노래 재생에 사용, 미리듣기 - 사용 가능, 풀버전 - 애플 뮤직 구독 필요)
val previews: List<Preview>, // 미리듣기 m4a 파일 url
val releaseDate: String, // 출시일
val trackNumber: Int, // 앨범 내에서의 트랙 순서
val artwork: Artwork, // 노래 이미지 정보
/* 필요 없을 것 같은 값들 */
val composerName: String, // 작곡가 이름
val discNumber: Int, // 디스크 번호
val isAppleDigitalMaster: Boolean, // Apple Digital Master 여부
val isrc: String, // 국제 표준 레코딩 코드 (ISRC)
)
속성
-
albumName: string (Required)
곡이 수록된 앨범의 이름입니다. -
artistName: string (Required)
아티스트의 이름입니다. -
artistUrl: string
콘텐츠의 아티스트 URL입니다. -
artwork: Artwork (Required)
앨범의 아트워크입니다. -
attribution: string
(클래식 음악 전용) 곡에 대한 아티스트 또는 작곡가의 이름입니다. -
audioVariants: [string]
곡의 특정 오디오 변형을 나타냅니다.가능한 값:
dolby-atmos,dolby-audio,hi-res-lossless,lossless,lossy-stereo. -
composerName: string
곡의 작곡가 이름입니다. -
contentRating: string
콘텐츠의 녹음물 등급입니다. 값이 없으면 등급이 없음을 의미합니다.가능한 값:
clean,explicit. -
discNumber: integer
곡이 수록된 앨범의 디스크 번호입니다. -
durationInMillis: integer (Required)
곡의 길이(밀리초)입니다. -
editorialNotes: EditorialNotes
Apple Music 카탈로그에 표시되는 곡에 대한 노트입니다. -
genreNames: [string] (Required)
곡과 연관된 장르 이름 목록입니다. -
hasLyrics: boolean (Required)
Apple Music 카탈로그에서 곡에 가사가 있는지 여부를 나타냅니다.true는 가사가 있음을,false는 가사가 없음을 의미합니다. -
isAppleDigitalMaster: boolean (Required)
응답이 Apple Digital Master로 곡을 제공하는지 여부를 나타냅니다. -
isrc: string
곡의 국제 표준 녹음 코드(ISRC)입니다. -
movementCount: integer
(클래식 음악 전용) 곡의 악장 수입니다. -
movementName: string
(클래식 음악 전용) 곡의 악장 이름입니다. -
movementNumber: integer
(클래식 음악 전용) 곡의 악장 번호입니다. -
name: string (Required)
곡의 현지화된 이름입니다. -
playParams: PlayParameters
Apple Music 구독으로 곡을 재생할 수 있는지 여부를 나타냅니다. -
previews: [Preview] (Required)
곡의 미리 듣기 자산입니다. -
releaseDate: string
곡의 출시일(알려져 있는 경우)입니다. 형식은YYYY-MM-DD또는YYYY입니다. -
trackNumber: integer
앨범 트랙 목록에서 곡의 번호입니다. -
url: string (Required)
Apple Music에서 곡을 공유할 수 있는 URL입니다. -
workName: string
(클래식 음악 전용) 연관된 작품의 이름입니다.
Artwork
Artwork 객체는 커버 이미지의 정보를 포함합니다. (앨범 커버, 가수 이미지 등)
data class Artwork(
val bgColor: String, // 이미지의 평균 배경색 (주요 색상)
val width: Int, // 이미지 너비
val height: Int, // 이미지 높이
val textColor1: String, // 배경색이 표시되는 경우 사용되는 기본 텍스트 색상
val textColor2: String, // 배경색이 표시되는 경우 사용되는 보조 텍스트 색상
val textColor3: String, // 배경색이 표시되는 경우 사용되는 세 번째 텍스트 색상
val textColor4: String, // 배경색이 표시되는 경우 최종 텍스트
val url: String, // 이미지 url ({w}x{h} 부분에 width, height 대입)
)
속성
width: 이미지의 너비 (픽셀)height: 이미지의 높이 (픽셀)url: 앨범 커버 이미지 URLbgColor: 이미지의 배경색 (HEX 코드)textColor1: 주요 텍스트 색상 (HEX 코드)textColor2: 보조 텍스트 색상 (HEX 코드)
PlayParams
PlayParams 객체는 곡 재생을 위한 파라미터를 포함합니다.
Apple Music과 매핑되는 값입니다.
data class PlayParams(
val id: String,
val kind: String
)
속성
id: 곡의 재생 IDkind: 리소스 유형 (song)
Previews
Previews 객체는 미리듣기 m4a 파일의 url을 포함합니다
data class Preview(
val url: String // https://example.com/preview.m4a
)
속성
url: 미리 듣기 URL